From 17a7dd0661f02694b554154100b25761661ce4df Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 26 Mar 2007 16:48:20 +0100 Subject: [PATCH] Fix up xm vcpu-pin via XenAPI, change types of new VM Metrics feilds signed-off-by: Tom Wilkie --- tools/python/xen/xend/XendAPI.py | 3 ++- tools/python/xen/xend/XendVMMetrics.py | 4 ++-- tools/python/xen/xm/main.py | 11 +++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py index f35a1fa418..48eb1d2853 100644 --- a/tools/python/xen/xend/XendAPI.py +++ b/tools/python/xen/xend/XendAPI.py @@ -1403,7 +1403,8 @@ class XendAPI(object): if key.startswith("cpumap"): vcpu = int(key[6:]) try: - xendom.domain_pincpu(xeninfo.getDomid(), vcpu, value) + cpus = map(int, value.split(",")) + xendom.domain_pincpu(xeninfo.getDomid(), vcpu, cpus) except Exception, ex: log.exception(ex) diff --git a/tools/python/xen/xend/XendVMMetrics.py b/tools/python/xen/xend/XendVMMetrics.py index 7c34d3793b..c527814e5e 100644 --- a/tools/python/xen/xend/XendVMMetrics.py +++ b/tools/python/xen/xend/XendVMMetrics.py @@ -92,7 +92,7 @@ class XendVMMetrics: set_flag('blocked') set_flag('online') set_flag('running') - vcpus_flags[i] = ",".join(flags) + vcpus_flags[i] = flags return vcpus_flags else: return {} @@ -115,7 +115,7 @@ class XendVMMetrics: addState("dying") addState("crashed") addState("shutdown") - return ",".join(states) + return states except Exception, err: # ignore missing domain log.trace("domain_getinfo(%d) failed, ignoring: %s", domid, str(err)) diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 898372fa39..d4e0191514 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -722,7 +722,7 @@ def getDomains(domain_names, state, full = 0): states = ('running', 'blocked', 'paused', 'shutdown', 'crashed', 'dying') def state_on_off(state): - if dom_metrics['state'].find(state) > -1: + if state in dom_metrics['state']: return state[0] else: return "-" @@ -953,12 +953,10 @@ def xm_vcpu_list(args): ['name', vm_records[vm_ref]['name_label']], ['vcpu_count', vm_records[vm_ref]['VCPUs_max']]] - - for i in range(int(vm_records[vm_ref]['VCPUs_max'])): def chk_flag(flag): - return vm_metrics[vm_ref]['VCPUs_flags'][str(i)] \ - .find(flag) > -1 and 1 or 0 + return flag in vm_metrics[vm_ref]['VCPUs_flags'][str(i)] \ + and 1 or 0 vcpu_info = ['vcpu', ['number', @@ -1261,8 +1259,9 @@ def xm_vcpu_pin(args): cpumap = cpu_make_map(args[2]) if serverType == SERVER_XEN_API: + cpumap = map(str, cpumap) server.xenapi.VM.add_to_VCPUs_params_live( - get_single_vm(dom), "cpumap%i" % vcpu, ",".join(cpumap)) + get_single_vm(dom), "cpumap%i" % int(vcpu), ",".join(cpumap)) else: server.xend.domain.pincpu(dom, vcpu, cpumap) -- 2.30.2